.\" chrt(1) manpage
.\"
.\" Copyright (C) 2004 Robert Love
.\" Copyright (C) 2015 Karel Zak <kzak@redhat.com>
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License,
.\" version 2, as published by the Free Software Foundation.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License along
.\" with this program; if not, write to the Free Software Foundation, Inc.,
.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
.\"
.TH CHRT 1 "January 2016" "util-linux" "User Commands"
.SH NAME
chrt \- manipulate the real-time attributes of a process
.SH SYNOPSIS
.B chrt
[options]
.IR priority\ command\  [ argument ...]
.br
.B chrt
[options]
.B \-p
.RI [ priority ]\  pid
.SH DESCRIPTION
.PP
.B chrt
sets or retrieves the real-time scheduling attributes of an existing \fIpid\fR,
or runs \fIcommand\fR with the given attributes.

.SH POLICIES
.TP
\fB\-o\fR, \fB\-\-other\fR
Set scheduling policy to
.BR SCHED_OTHER .
This is the default Linux scheduling policy.
.TP
\fB\-f\fR, \fB\-\-fifo\fR
Set scheduling policy to \fBSCHED_FIFO\fR.
.TP
\fB\-r\fR, \fB\-\-rr\fR
Set scheduling policy to
.BR SCHED_RR .
When no policy is defined, the
.B SCHED_RR
is used as the default.
.TP
\fB\-b\fR, \fB\-\-batch\fR
Set scheduling policy to
.B SCHED_BATCH
(Linux-specific, supported since 2.6.16).  The priority argument has to be set to zero.
.TP
\fB\-i\fR, \fB\-\-idle\fR
Set scheduling policy to
.B SCHED_IDLE
(Linux-specific, supported since 2.6.23).  The priority argument has to be set to zero.
.TP
.BR -d ,\  --deadline
Set scheduling policy to
.B SCHED_DEADLINE
(Linux-specific, supported since 3.14).  The priority argument has to be set to zero.
See also \fB\-\-sched\-runtime\fR, \fB\-\-sched\-deadline\fR and
\fB\-\-sched\-period\fR.  The relation between the options required by the kernel is
runtime <= deadline <= period.
.B chrt
copies \fIperiod\fR to \fIdeadline\fR if \fB\-\-sched\-deadline\fR is not specified and
\fIdeadline\fR to \fIruntime\fR if \fB\-\-sched\-runtime\fR is not specified.
It means that at least \fB\-\-sched\-period\fR has to be specified.  See
.BR sched (7)
for more details.

.SH "SCHEDULING OPTIONS"
.TP
\fB\-T\fR, \fB\-\-sched\-runtime\fR \fInanoseconds\fR
Specifies runtime parameter for SCHED_DEADLINE policy (Linux-specific).
.TP
\fB\-P\fR, \fB\-\-sched\-period\fR \fInanoseconds\fR
Specifies period parameter for SCHED_DEADLINE policy (Linux-specific).
.TP
\fB\-D\fR, \fB\-\-sched\-deadline\fR \fInanoseconds\fR
Specifies deadline parameter for SCHED_DEADLINE policy (Linux-specific).
.TP
\fB\-R\fR, \fB\-\-reset-on-fork\fR
Add
.B SCHED_RESET_ON_FORK
flag to the
.B SCHED_FIFO
or
.B SCHED_RR
scheduling policy (Linux-specific, supported since 2.6.31).

.SH OPTIONS
.TP
.BR -a ,\  --all-tasks
Set or retrieve the scheduling attributes of all the tasks (threads) for a
given PID.
.TP
.BR -m ,\  --max
Show minimum and maximum valid priorities, then exit.
.TP
.BR -p ,\  --pid
Operate on an existing PID and do not launch a new task.
.TP
.BR -v ,\  --verbose
Show status information.
.TP
.BR -V ,\  --version
Display version information and exit.
.TP
.BR -h ,\  --help
Display help text and exit.
.SH USAGE
.TP
The default behavior is to run a new command:
.B chrt
.I priority
.IR command\  [ arguments ]
.TP
You can also retrieve the real-time attributes of an existing task:
.B chrt \-p
.I pid
.TP
Or set them:
.B chrt \-r \-p
.I priority pid
.SH PERMISSIONS
A user must possess
.B CAP_SYS_NICE
to change the scheduling attributes of a process.  Any user can retrieve the
scheduling information.

.SH NOTES
Only
.BR SCHED_FIFO ,
.B SCHED_OTHER
and
.B SCHED_RR
are part of POSIX 1003.1b Process Scheduling.  The other scheduling attributes
may be ignored on some systems.
.P
Linux' default scheduling policy is
.BR SCHED_OTHER .
.SH SEE ALSO
.BR nice (1),
.BR renice (1),
.BR taskset (1),
.BR sched (7)
.sp
See
.BR sched_setscheduler (2)
for a description of the Linux scheduling scheme.
.SH AUTHORS
.UR rml@tech9.net
Robert Love
.UE
.br
.UR kzak@redhat.com
Karel Zak
.UE
.SH AVAILABILITY
The chrt command is part of the util-linux package and is available from
https://www.kernel.org/pub/linux/utils/util-linux/.
